PHP MVC Models
Home

PHP MVC Models

PHP MVC Models

Het model bevat de voorstelling (representation) van de onderliggende logische structuur van de gegevens in een applicatie. We kunnen daarvoor om het even welke gegevenstructuur in PHP gebruiken. Welke gegevenstructuur we kiezen zal afhangen van de complexiteit van de data die we moeten representeren.

Probleem

We moeten de gegevens vanuit de controller naar de view sturen en daarvoor hebben we een gegevenstructuur nodig waarin we die gegevens kunnen opslaan.

Oplossing

Voor eenvoudige structuren gebruiken we een associatieve array. In webapplicaties moeten de gegevens uit een model meestal in één of ander HTML controleelement (INPUT, SELECT, TABLE, enz.) aan de gebruiker getoond worden. Als sleutel van de associative array gebruiken we de waarde van het name attribuut van het HTML element en als waarde, de waarde die we aan de gebruiker willen tonen of de waarde die de gebruiker opgeeft.

Voor complexere structuren kan je ook klassen gebruiken en arrays van objecten om instanties van de klassen op te slaan.

In Fric-frac gaan we associatieve array's gebruiken.

Voorbeelden

  1. Een eenvoudig voorbeeld:
    $model = array('title' => 'Admin index');
    
  2. Zo zou een model er kunnen uitzien voor een entiteit, bijvoorbeeld voor Event. De gegevens van een rij uit de Event tabel en de waarden die in het SELECT html element van EventCategory getoond moeten worden. In het de OPTION elementen van het SELECT element moeten we in het value attrribuut de Id van Event zetten. Hetzelfde moeten we voor EventTopic doen. Tenslotte moeten we nog een lijst met de rijen uit de Event tabel voorzien:
    $model = array(
        'tableName' => 'Event',
        'error' => 'Geen',
        'row' => array(
            'Name' => 'PHP serieus',
            'Location' => 'Antwerpen',
            'Starts' => '2020-10-10 20:00',
            'Ends' => '2020-10-11 22:00',
            'Image' => 'images/php-serieus.png',
            'Description' => 'Leren werken met ThreepennyMVC',
            'OrganiserName' => 'Modern Ways',
            'OrganiserDescription' => 'Teaching material',
            'EventCategoryId' => 3,
            'EventTopicId' => 4
        ),
        'listEventCategory' => array(
            array('Id' => 1, 'Name' => 'Appearance or Signing'),
            array('Id' => 2, 'Name' => 'Attraction Camp.'),
            array('Id' => 3, 'Name' => 'Trip or Retreat'),
            array('Id' => 4, 'Name' => 'Concert or Performance'),
            array('Id' => 5, 'Name' => 'Course, Training or Workshop')
        ),
        'listEventTopic' => array(
            array('Id' => 1, 'Name' => 'Auto, Boat & Air'),
            array('Id' => 2, 'Name' => 'Business & Professional'),
            array('Id' => 3, 'Name' => 'Charities & Causes'),
            array('Id' => 4, 'Name' => 'Community & Culture'),
            array('Id' => 5, 'Name' => 'Family & Education')
        ),
        'list' => array(
            array('Id' => 1, 'Name' => 'PHP serieus', 'Location' => 'Antwerpen'),
            array('Id' => 1, 'Name' => 'Bob Dylan in café De Kat', 'Location' => 'Antwerpen'),
            array('Id' => 1, 'Name' => 'Boekvoorstelling Klaartje Schrijvers', 'Location' => 'Antwerpen'),
            array('Id' => 1, 'Name' => 'Javacscript serieus', 'Location' => 'Antwerpen')
        )
    );

JI
2020-04-07 16:11:44